Many networks such as data-center networks may strive for reducing data loss associated with various data traffic, desirably, to zero. The traffic congestion at any node (e.g., switch) may be caused by an input data rate that is too high for the node to handle and can result in a backlog in that node. Data center networks may use two different methods for congestion management: Link level flow control using methods such as a packet flow control (PFC); and/or network level congestion management such as quantized congestion notification (QCN), data center transmission control protocol (DCTCP), or other protocols that can control traffic sources rates.
The network level congestion management is able to control and remove congestion at network hot spots in long term by, for example, reducing traffic rate at the source. However, in the short term the link level flow control can create and expand congestion trees that are rooted in network hot spots, before the network level congestion management takes control and reduces the data rate of sources that are causing congestion. Creation of congestion trees by the link level flow control can cause data rate reduction for innocent flows (e.g., flows that do not contribute to the congestion) that are in the congestion tree.
The network level congestion management may employ a set of parameters that we call queue-set (Q-set) for detecting congestion level at each queue associated with a node. The Q-set parameters are different for different protocols. For example, in the DCTCP protocol, K parameter is a threshold on queue buffer usage; in the Early Congestion Notification (ECN) protocol, Min and Max thresholds are used as two thresholds on the buffer usage; and in QCN protocol, Qeq is used as a threshold for queue buffer usage and W is a weight factor to consider rate of change of the queue size.
Congestion notification in network level management may be performed through direct messaging to the source or through packet marking. For example, in the QCN protocol, explicit control messages including congestion notification messages (CNMs) are communicated to the sources (e.g., servers) to reduce their rate, whereas in the DCTCP or ECN protocols, data packets may be marked at a congested node to indicate that the path from the source to the destination was congested.